#pragma once

#include <QtCore/QtGlobal>
#include "GUIWidget/GUIWidgetBase.h"


namespace EventOper 
{
	class ParaWidgetInterfaceOperator;
}

namespace Ui 
{
	class GUIDataFluidWidget;
}

namespace Interface 
{
	class FITKCDDataFluid;
}


namespace GUI
{
	class MainWindow;
	class GUIWIDGETAPI GUIDataFluidWidget : public GUIWidgetBase
	{
		Q_OBJECT
	public:
		GUIDataFluidWidget(Interface::FITKCDDataFluid* obj, EventOper::ParaWidgetInterfaceOperator* oper, QWidget* parent = nullptr);
		~GUIDataFluidWidget();

		void init();

    private slots:
		void on_lineEdit_Name_editingFinished();
		void on_comboBox_Material_activated(int index);
		void on_checkBox_Initialize_Hydrostatic_Pressure_stateChanged(int state);
		void on_doubleSpinBox_Free_Surface0_valueChanged(double value);
		void on_doubleSpinBox_Free_Surface1_valueChanged(double value);
		void on_doubleSpinBox_Free_Surface2_valueChanged(double value);
		void on_doubleSpinBox_Dynamic_Viscosity_valueChanged(double value);
		void on_doubleSpinBox_Kinematic_Viscosity_valueChanged(double value);
		void on_doubleSpinBox_Artificial_Viscosity_valueChanged(double value);

    private:
		void setDataToWidget();

    private:
        EventOper::ParaWidgetInterfaceOperator* _oper = nullptr;
		Ui::GUIDataFluidWidget* _ui = nullptr;

		Interface::FITKCDDataFluid* _obj;
	};
}